package com.jyxd.web.dao.basic;

import com.jyxd.web.data.basic.VitalSignMerge;
import com.jyxd.web.data.dto.TemperatureMomentDTO;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface VitalSignMergeDao {

    /**
     * 新增一条生命体征表记录
     *
     * @param vitalSign
     * @return boolean
     */
    boolean insert(VitalSignMerge vitalSign);

    /**
     * 根据主键id查询一条生命体征表记录
     *
     * @param id
     * @return VitalSign
     */
    VitalSignMerge queryData(String id);

    /**
     * 更新一条生命体征表记录
     *
     * @param vitalSignMerge
     * @return boolean
     */
    boolean update(VitalSignMerge vitalSignMerge);

    /**
     * 根据条件分页查询生命体征表记录列表
     *
     * @param map
     * @return list
     */
    List<VitalSignMerge> queryList(Map<String, Object> map);

    /**
     * 根据患者id和时间查询生命体征数据
     *
     * @param map
     * @return
     */
    VitalSignMerge queryByPatientAndDataTime(Map<String, Object> map);

    /**
     * 根据条件查询列表总记录数
     *
     * @param map
     * @return
     */
    int queryNum(Map<String, Object> map);

    /**
     * 根据条件查询患者使用呼吸机数量
     *
     * @param map
     * @return
     */
    int queryModeNum(Map<String, Object> map);

    /**
     * 查询体温单的相关数据
     */
    List<TemperatureMomentDTO> findTemperatureMomentVitalSignByCode(Map<String, Object> map);

    /**
     * 体温单独处理
     *
     * @param map
     * @return
     */
    List<TemperatureMomentDTO> findTemperatureMomentVitalSignByCodeTemp(Map<String, Object> map);

    /**
     * 查询是否使用呼吸机
     *
     * @param patientId
     * @return
     */
    int findIsModeNum(String patientId);

    /**
     * 查询最早使用呼吸机的数据时间
     *
     * @param patientId
     * @return
     */
    VitalSignMerge findEarlyModeData(String patientId);

    int saveOrUpdate(VitalSignMerge vitalSignMerge);
}
